package com.ruoyi.medical.domain;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 工单基本信息对象 meioms_work_order
 * 
 * @author ruoyi
 * @date 2025-12-03
 */
@TableName("meioms_work_order")
public class MeiomsWorkOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 工单ID */
    @TableId
    private Long workOrderId;

    /** 工单号 */
    @Excel(name = "工单号")
    private String orderNumber;

    /** 设备ID */
    @Excel(name = "设备ID")
    private Long deviceId;

    /** 报修类型（0主设备 1配件） */
    @Excel(name = "报修类型", readConverterExp = "0=主设备,1=配件")
    private String reportType;

    /** 故障描述 */
    @Excel(name = "故障描述")
    private String faultDescription;

    /** 紧急程度（0紧急 1高 2中 3低） */
    @Excel(name = "紧急程度", readConverterExp = "0=紧急,1=高,2=中,3=低")
    private String emergencyLevel;

    /** 报修人 */
    @Excel(name = "报修人")
    private String reportUser;

    /** 报修时间 */
    @Excel(name = "报修时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date reportTime;

    /** 报修人电话 */
    @Excel(name = "报修人电话")
    private String reportPhone;

    /** 工程师ID */
    @Excel(name = "工程师ID")
    private Long engineerId;

    /** 分配时间 */
    @Excel(name = "分配时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date assignTime;

    /** 维修开始时间 */
    @Excel(name = "维修开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date repairStartTime;

    /** 维修结束时间 */
    @Excel(name = "维修结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date repairEndTime;

    /** 工程师确认时间 */
    @Excel(name = "工程师确认时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date engineerConfirmTime;

    /** 医院确认时间 */
    @Excel(name = "医院确认时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date hospitalConfirmTime;

    /** 工单状态 */
    @Excel(name = "工单状态")
    private String workOrderStatus;

    /** 租户ID */
    private Long tenantId;

    /** 备注 */
    private String remark;

    public void setWorkOrderId(Long workOrderId)
    {
        this.workOrderId = workOrderId;
    }

    public Long getWorkOrderId()
    {
        return workOrderId;
    }
    public void setOrderNumber(String orderNumber)
    {
        this.orderNumber = orderNumber;
    }

    public String getOrderNumber()
    {
        return orderNumber;
    }
    public void setDeviceId(Long deviceId)
    {
        this.deviceId = deviceId;
    }

    public Long getDeviceId()
    {
        return deviceId;
    }
    public void setReportType(String reportType)
    {
        this.reportType = reportType;
    }

    public String getReportType()
    {
        return reportType;
    }
    public void setFaultDescription(String faultDescription)
    {
        this.faultDescription = faultDescription;
    }

    public String getFaultDescription()
    {
        return faultDescription;
    }
    public void setEmergencyLevel(String emergencyLevel)
    {
        this.emergencyLevel = emergencyLevel;
    }

    public String getEmergencyLevel()
    {
        return emergencyLevel;
    }
    public void setReportUser(String reportUser)
    {
        this.reportUser = reportUser;
    }

    public String getReportUser()
    {
        return reportUser;
    }
    public void setReportTime(Date reportTime)
    {
        this.reportTime = reportTime;
    }

    public Date getReportTime()
    {
        return reportTime;
    }
    public void setReportPhone(String reportPhone)
    {
        this.reportPhone = reportPhone;
    }

    public String getReportPhone()
    {
        return reportPhone;
    }
    public void setEngineerId(Long engineerId)
    {
        this.engineerId = engineerId;
    }

    public Long getEngineerId()
    {
        return engineerId;
    }
    public void setAssignTime(Date assignTime)
    {
        this.assignTime = assignTime;
    }

    public Date getAssignTime()
    {
        return assignTime;
    }
    public void setRepairStartTime(Date repairStartTime)
    {
        this.repairStartTime = repairStartTime;
    }

    public Date getRepairStartTime()
    {
        return repairStartTime;
    }
    public void setRepairEndTime(Date repairEndTime)
    {
        this.repairEndTime = repairEndTime;
    }

    public Date getRepairEndTime()
    {
        return repairEndTime;
    }
    public void setEngineerConfirmTime(Date engineerConfirmTime)
    {
        this.engineerConfirmTime = engineerConfirmTime;
    }

    public Date getEngineerConfirmTime()
    {
        return engineerConfirmTime;
    }
    public void setHospitalConfirmTime(Date hospitalConfirmTime)
    {
        this.hospitalConfirmTime = hospitalConfirmTime;
    }

    public Date getHospitalConfirmTime()
    {
        return hospitalConfirmTime;
    }
    public void setWorkOrderStatus(String workOrderStatus)
    {
        this.workOrderStatus = workOrderStatus;
    }

    public String getWorkOrderStatus()
    {
        return workOrderStatus;
    }
    public void setTenantId(Long tenantId)
    {
        this.tenantId = tenantId;
    }

    public Long getTenantId()
    {
        return tenantId;
    }
    public void setRemark(String remark)
    {
        this.remark = remark;
    }

    public String getRemark()
    {
        return remark;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("workOrderId", getWorkOrderId())
            .append("orderNumber", getOrderNumber())
            .append("deviceId", getDeviceId())
            .append("reportType", getReportType())
            .append("faultDescription", getFaultDescription())
            .append("emergencyLevel", getEmergencyLevel())
            .append("reportUser", getReportUser())
            .append("reportTime", getReportTime())
            .append("reportPhone", getReportPhone())
            .append("engineerId", getEngineerId())
            .append("assignTime", getAssignTime())
            .append("repairStartTime", getRepairStartTime())
            .append("repairEndTime", getRepairEndTime())
            .append("engineerConfirmTime", getEngineerConfirmTime())
            .append("hospitalConfirmTime", getHospitalConfirmTime())
            .append("workOrderStatus", getWorkOrderStatus())
            .append("tenantId", getTenantId())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
